home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / bin / startx < prev    next >
Text File  |  2009-04-29  |  5KB  |  225 lines

  1. #!/bin/bash
  2.  
  3. # $Xorg: startx.cpp,v 1.3 2000/08/17 19:54:29 cpqbld Exp $
  4. #
  5. # This is just a sample implementation of a slightly less primitive
  6. # interface than xinit.  It looks for user .xinitrc and .xserverrc
  7. # files, then system xinitrc and xserverrc files, else lets xinit choose
  8. # its default.  The system xinitrc should probably do things like check
  9. # for .Xresources files and merge them in, startup up a window manager,
  10. # and pop a clock and serveral xterms.
  11. #
  12. # Site administrators are STRONGLY urged to write nicer versions.
  13. #
  14. # $XFree86: xc/programs/xinit/startx.cpp,v 3.16tsi Exp $
  15.  
  16. unset DBUS_SESSION_BUS_ADDRESS
  17. unset SESSION_MANAGER
  18.  
  19.  
  20. userclientrc=$HOME/.xinitrc
  21. sysclientrc=/etc/X11/xinit/xinitrc
  22.  
  23.  
  24. userserverrc=$HOME/.xserverrc
  25. sysserverrc=/etc/X11/xinit/xserverrc
  26. defaultclient=xterm
  27. defaultserver=/usr/bin/X
  28. defaultclientargs=""
  29. defaultserverargs=""
  30. defaultdisplay=":0"
  31. clientargs=""
  32. serverargs=""
  33.  
  34. enable_xauth=1
  35.  
  36.  
  37.  
  38. whoseargs="client"
  39. while [ x"$1" != x ]; do
  40.     case "$1" in
  41.     # '' required to prevent cpp from treating "/*" as a C comment.
  42.     /''*|\./''*)
  43.     if [ "$whoseargs" = "client" ]; then
  44.         if [ x"$clientargs" = x ]; then
  45.         client="$1"
  46.         else
  47.         clientargs="$clientargs $1"
  48.         fi
  49.     else
  50.         if [ x"$serverargs" = x ]; then
  51.         server="$1"
  52.         else
  53.         serverargs="$serverargs $1"
  54.         fi
  55.     fi
  56.     ;;
  57.     --)
  58.     whoseargs="server"
  59.     ;;
  60.     *)
  61.     if [ "$whoseargs" = "client" ]; then
  62.         clientargs="$clientargs $1"
  63.     else
  64.         # display must be the FIRST server argument
  65.         if [ x"$serverargs" = x ] && \
  66.          expr "$1" : ':[0-9][0-9]*$' > /dev/null 2>&1; then
  67.         display="$1"
  68.         else
  69.         serverargs="$serverargs $1"
  70.         fi
  71.     fi
  72.     ;;
  73.     esac
  74.     shift
  75. done
  76.  
  77. # process client arguments
  78. if [ x"$client" = x ]; then
  79.     client=$defaultclient
  80.  
  81.     # if no client arguments either, use rc file instead
  82.     if [ x"$clientargs" = x ]; then
  83.         if [ -f "$userclientrc" ]; then
  84.             client=$userclientrc
  85.         elif [ -f "$sysclientrc" ]; then
  86.             client=$sysclientrc
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.         fi
  94.  
  95.         clientargs=$defaultclientargs
  96.     fi
  97. fi
  98.  
  99. # process server arguments
  100. if [ x"$server" = x ]; then
  101.     server=$defaultserver
  102.  
  103.     # if no server arguments or display either, use defaults
  104.     if [ x"$serverargs" = x -a x"$display" = x ]; then
  105.     # For compatibility reasons, only use xserverrc if there were no server command line arguments
  106.     if [ -f "$userserverrc" ]; then
  107.         server=$userserverrc
  108.     elif [ -f "$sysserverrc" ]; then
  109.         server=$sysserverrc
  110.     fi
  111.  
  112.     serverargs=$defaultserverargs
  113.     display=$defaultdisplay
  114.     fi
  115. fi
  116.  
  117. if [ x"$enable_xauth" = x1 ] ; then
  118.     if [ x"$XAUTHORITY" = x ]; then
  119.         XAUTHORITY=$HOME/.Xauthority
  120.         export XAUTHORITY
  121.     fi
  122.  
  123.     removelist=
  124.  
  125.     # set up default Xauth info for this machine
  126.  
  127.     # check for GNU hostname
  128.     if hostname --version > /dev/null 2>&1; then
  129.         if [ -z "`hostname --version 2>&1 | grep GNU`" ]; then
  130.             hostname=`hostname -f`
  131.         fi
  132.     fi
  133.  
  134.     if [ -z "$hostname" ]; then
  135.         hostname=`hostname`
  136.     fi
  137.  
  138.     authdisplay=${display:-:0}
  139.  
  140.     mcookie=`/usr/bin/mcookie`
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.     if test x"$mcookie" = x; then
  149.         echo "Couldn't create cookie"
  150.         exit 1
  151.     fi
  152.     dummy=0
  153.  
  154.     # create a file with auth information for the server. ':0' is a dummy.
  155.     xserverauthfile=`mktemp -p /tmp serverauth.XXXXXXXXXX`
  156.     trap "rm -f '$xserverauthfile'" HUP INT QUIT ILL TRAP KILL BUS TERM
  157.     xauth -q -f "$xserverauthfile" << EOF
  158. add :$dummy . $mcookie
  159. EOF
  160.  
  161.  
  162.  
  163.     serverargs=${serverargs}" -auth "${xserverauthfile}
  164.  
  165.  
  166.     # now add the same credentials to the client authority file
  167.     # if '$displayname' already exists do not overwrite it as another
  168.     # server man need it. Add them to the '$xserverauthfile' instead.
  169.     for displayname in $authdisplay $hostname$authdisplay; do
  170.         authcookie=`xauth list "$displayname" \
  171.         | sed -n "s/.*$displayname[[:space:]*].*[[:space:]*]//p"` 2>/dev/null;
  172.         if [ "z${authcookie}" = "z" ] ; then
  173.             xauth -q << EOF 
  174. add $displayname . $mcookie
  175. EOF
  176.         removelist="$displayname $removelist"
  177.         else
  178.             dummy=$(($dummy+1));
  179.             xauth -q -f "$xserverauthfile" << EOF
  180. add :$dummy . $authcookie
  181. EOF
  182.         fi
  183.     done
  184. fi
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197. xinit "$client" $clientargs -- "$server" $display $serverargs
  198.  
  199.  
  200.  
  201.  
  202. if [ x"$enable_xauth" = x1 ] ; then
  203.     if [ x"$removelist" != x ]; then
  204.         xauth remove $removelist
  205.     fi
  206.     if [ x"$xserverauthfile" != x ]; then
  207.         rm -f "$xserverauthfile"
  208.     fi
  209. fi
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.